社论 22.10.20 高斯整数环

二维圆周数点与高斯整数环

所以来水社论了(

[HAOI2008]圆上的整点

给定 r。这给出了圆 C:x2+y2=r2。求在 C 圆周上的整点个数。

r1014

数论题。

N=r2。于是我们需要求的是数对 (x,y) s.t. x2+y2=N 的数量。

引入一个东西:高斯整数。高斯整数是形如 a+bi 的复数,满足 a,bZ
在高斯整数集上定义 {+,×}

  1. (a+bi)+(c+di)=(a+b)+(c+d)i
  2. (a+bi)×(c+di)=(acbd)+(ad+bc)i

就得到了一个高斯整数环 Z[i]
容易发现 Z[i] 是交换环,证明考虑复数运算的性质。但是 Z[i] 不是除环,证明考虑高斯整数和复数运算的性质。

非除环里有乘法逆元的元素称为环的单位。Z[i] 上的单位只有四个:{±1,±i}
证明: +1 为幺元。容易发现 (1)×(1)=1,i×(i)=1。因此得证。

定义一个高斯整数 z=a+bi 的范数 N(z)=z×z¯,其中 z¯z 的共轭复数。其实 N(z)=||z||,只是换了一种表述,更方便了点。我一般会直接管它叫 norm
定理:N(ab)=N(a)N(b)。易证。
这表明了范数是积性的。

回到两段前。我们可以使用范数重新发现一遍单位。
假设 α=a+bi 是一个单位。那就肯定存在一个 β=c+di 满足 αβ=1。两边取范数得到
N(αβ)=N(1)=1。然后得到 (a2+b2)(c2+d2)=1。由于 a,b,c,dZ,因此 a2+b2=1。这个方程的解只有 (±1,0),(0,±1)。于是得到四个单位 {±1,±i}

然后定义一个高斯整数 α=a+bi 是规范的,当且仅当 a>0,b0。在之后的讨论中我们可以发现,规范的高斯整数的作用与正整数类似。

引入一个高斯素数:高斯素数在 Z[i] 上是乘法不可约的。也就是说你没法再找出两个 Z[i] 且非单位的元素的乘积表出一个高斯素数。
例如 2Z[i] 上可以被表为 (1+i)(1i)

现在我们有了一个很优美的刻画。关于它,有一个更优美的定理。

Theorem 1 高斯素数定理

可以用以下的方式描述高斯素数:

  1. 1+i 为高斯素数。
  2. p 为普通素数且 p3(mod4),则 p 本身是高斯素数。
  3. p 为普通素数且 p1(mod4),则在将 p 表为两平方数之和 u2+v2 后,u+vi 是高斯素数。

任何高斯素数等于一个单位乘上形式 1. 2. 或 3. 中的素数。

证明:
对于 1. 和 3.,我们发现若 N(p) 为一个普通素数,则 p 必为一个高斯素数。这点可以由 p1(mod4) 素数唯一表为两平方和的性质证明。
对于 2.,采用反证法。令 p 为一个如题设的素数,假设 p 可以表为两个高斯整数的乘积,即 (a+bi)(c+di)=p,则取范数得

(a2+b2)(c2+d2)=p2

为得到非平凡因式分解,我们需要解方程 (a2+b2)=p,(c2+d2)=p。由于 p3(mod4),因此 p 无法表为两平方数之和。故原设不成立,因此结论正确。

因此我们得到了充分性。现在需要推导必要性。这里使用引理。

Lemma 1 高斯整数的整除性引理

这里仍然记整除符号为
α=a+bi 为高斯整数。则有

  1. 2N(α),则 (1+i)α
  2. p 为形式 2. 的素数,并假设 pN(α),则 pα
  3. p=u+vi 为形式 3. 的素数,假设 N(p)N(α),则 pαp¯α 中定有一个成立。
证明

1.

我们已知 2N(α),即 2(a2+b2)。因此 a,b 具有相同的奇偶性。因此 a+ba+b 都可以被 2 整除。这表明

a+bi1+i=(a+b)+(a+b)i2

也是一个高斯整数。因此 (1+i)α

2.

我们已知 p3(mod4)p(a2+b2)。这表明 a2b2(modp)。因此可以通过计算勒让德符号得知 papb

(ap)2=(a2p)=(b2p)=(1p)(bp)2

由于 p3(mod4),由二次互反律得到 (1p)=1 。这表明

(ap)2=(bp)2

如果a,b 不满足 papb,则我们得到了 1=1。这与事实相悖,因此我们证明了 papb 。设 a=pa,b=pb,则 α=a+bi=p(a+bi)。因此 pα

3.

我们已知 N(p)N(α)。所以设 N(α)=a2+b2=N(p)K s.t. KN+

我们需要证明以下两个数中至少一个为高斯整数:

αp=(au+bv)+(av+bu)iN(p), αp¯=(aubv)+(av+bu)iN(p)

首先观察到 (au+bv)(aubv)=a2u2+b2v2=(a2+b2)u2N(p)b2=N(p)(Ku2b2)。这表明了 (au+bv)(aubv) 中至少有一个可以被 N(p) 整除。同样的推导可以证明 (av+bu)(av+bu) 中至少有一个能被 N(p) 整除。

当其中一个分数对应的两个和式均能被整除时答案是平凡的,现在讨论当 (au+bv)(av+bu) 均可被 N(p) 整除的情况,当另一种情况时可以平凡推广。

我们已经证明了 N(p) 整除 (au+bv)(av+bu) ,因此 N(p) 整除 (b2a2)v。由于 v2N(p),因此 N(p)(b2a2)。然而我们知道 N(p)|(a2+b2),因此 N(p)2a2N(p)2b2
由于 N(p)2,因此我们最终能推出 N(p)aN(p)b

自然地,我们可以将 α 表为 pp¯(a+bi),其中 a=N(p)a,b=N(p)b

因此 pα

这也就证明了 Lemma 1

假设 α=a+bi,则我们需要证明的是 α 必定属于 1. 2. 或 3. 中的一种。这里令 α 不是单位,因此 N(α)1。因此至少有一个素数 p 整除 N(α)

首先考虑 p2 的情况。由 Lemma 1 的 1. 部分,(1+i)α。但已经假设了 α 为素数,因此 α 必等于 (1+i) 乘一个单位。因此 α 属于形式 1.。
然后假设 p3(mod4)。由 Lemma 1 的 2. 部分,pα。但已经假设了 α 为素数,因此 α 必等于 p 乘一个单位。因此 α 属于形式 2.。
最后假设 p1(mod4)。由两平方数之和定理,p 可以被表为两平方数之和 u2+v2。又由 Lemma 1 的 3. 部分,α 要么被 u+vi 整除,要么被 uvi 整除,由于 α 是素数,其必等于 p 乘一个单位。特别的, a2+b2=u2+v2=p,因此 α 属于形式 3.。

这就证明了必要性。
因此这证明了 Theorem 1 的充要性质。

既然已经有了高斯素数的详尽表示,我们的下一步就是用素数来表出高斯整数环上的每个元素。即,我们要证明高斯整数环上的唯一分解。

Theorem 2 高斯整数环的 UFD 性质

每个高斯整数 α0 都可以被唯一分解为一个单位 u 乘以一系列规范的高斯素数的乘积:

α=uπ1e1π2e2πrer

其中 π1,π2,,πr 互不相同,ei>0。特殊地,若 α 是单位,则重写为 α=u

证明:我们采用反证法。

首先假设:至少存在一个非零的高斯整数不可分解为素数的乘积。

我们选取所有满足这个假设的高斯整数中范数最小的数,记作 α。这里不妨令 α 既不是高斯素数,也不是单位,因为这两种都不可能不可分解。
由于 α 不是素数也不是单位,其一定可以被分解为两个不是单位的高斯整数 βγ 的乘积。
现在考虑 N(β)N(γ)。由于 β,γ 不是单位,因此 N(β)>1,N(γ)>1。由范数的积性与 α=βγ 得到

N(β)=N(α)N(γ)<N(α)N(γ)=N(α)N(β)<N(α)

而我们选择的 α 是范数最小的不可分解数,因此 βγ 都可以被分解为高斯素数的乘积,而这也表明 α 同样能被分解为高斯素数的乘积。
这与假设矛盾,因此原命题成立。这给出了原命题的充分性。

随后假设:至少存在一个非零的高斯整数,存在两个及以上的素数分解。

我们选取所有满足这个假设的高斯整数中范数最小的数,记作 α。由题设,我们有

α=uπ1π2πr=uπ1π2πs

其中所有素数都是规范的素数。

显然 α 不可为单位,否则有 α=u=u,因此这两个分解是相同的。这就表明了 r1

取第一个分解中的第一个素数 π1,我们有 π1uπ1π2πs。由于 π1u,我们不妨假设 π1π1。然而 π1 是高斯素数,因此有 π1=[]×π1。由于这里的素数都是规范的,因此这个单位为 1。于是有 π1=π1

β=απ1=απ1。这表明了

β=uπ2πr=uπ2πs

β 有两个不同的因子分解。然而 N(β)=N(α)N(π1)<N(α),这表明 α 不是有两个不同的因子分解的范数最小的数。
这与假设矛盾,因此原命题成立。这给出了原命题的必要性。

综上,我们给出了 Theorem 2 的充要性。

到了这里,我们终于可以开始解决上面那道题了。

我们记 R(N)=N

Lemma 2 勒让德两平方数之和定理 第一部分

若整数 N 分解为普通素数的乘积

N=2t×p1e1prer×q1f1qsfs

其中 p1,,pr 都是模 41 的,q1,,qs 都是模 43 的。

  1is,2fi,则

R(N)=4(e1+1)(e2+1)(er+1)

其他情况 R(N)=0

证明:

现在要将 N 表为两平方数之和。设 N=A2+B2,这给出了

N=(A+Bi)(ABi)

由高斯整数的唯一分解,A+Bi 为某些整除 N 的素数的乘积,ABi 是其余素数的乘积。
然而我们对高斯素数的选择并不完全自由,因为 A+BiABi 互为共轭。也就是说,如果 (a+bi)e|(A+Bi),则 (abi)e|(ABi)。以上推理适用于任何高斯素数。

我们先将 N 分解为普通素数的乘积

N=2t×p1e1prer×q1f1qsfs

随后将 N 分解为高斯整数的乘积。整数 2 分解为 i(1+i)2pj 分解为 (aj+bji)(ajbji)qj 本身为高斯素数。这给出了如下的分解:

N=(i)t(1+i)2t×((a1+b1i)(a1b1i))e1((ar+bri)(arbri))er×q1f1qsfs

fi 为奇数,则 N 的分解两侧存在一个不平衡的质数 qi,因此 N 不可以被表为两平方数之和。现在假设所有的 fi 都是偶数。我们现在只需着眼 p 的部分。

由于 pj 对答案的贡献为 2ej,因此不妨假设 (aj+bji)A+Bi 贡献了 x 个,对 (ABi) 贡献了 ejx 个。由于 0xej,对指数的不同选择方法计数导出了 p 部分的答案:

(e1+1)(e2+1)(er+1)

同时不难证明对于不同的质数,其导出的答案是不同的。因此计数不重不漏。

由于共有 4 个单位,因此我们有最终的结果

R(N)=4(e1+1)(e2+1)(er+1)

因此我们有 Lemma 2 的证明。

到这里似乎事情就告一段落了。我们要求的就是 R(N)。由于 N=r2,我们只需要将 r 进行质因子分解,每个质因子都可以对答案造成 2ei+1 的贡献。又由于不可能存在不平衡的质数,因此答案一定不为 0

code
#include <bits/stdc++.h>
using namespace std;
long long r, ans = 4;

signed main() {
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
	cin >> r;
	for (register int i = 2, cnt; i * i <= r; ++ i) {
		if (r % i == 0) {
			cnt = 0;
			while (r % i == 0) cnt += 2, r /= i;
			if (!(i >> 1 & 1)) ans *= cnt + 1;
		}
	} if (r > 1 and !(r >> 1 & 1)) ans *= 3;
	cout << ans << endl;
}

到这里似乎事情就告一段落了……吗?

不。我们还可以走得更远些:

Theorem 3 勒让德两平方数之和定理

对给定的正整数 N,设

  1. D1 = [整除 N 且满足 d1(mod4) 的正整数 d 的个数]
  2. D3 = [整除 N 且满足 d3(mod4) 的正整数 d 的个数]

则有

R(N)=4(D1D3)

N 分解:

N=2t×p1e1prer×q1f1qsfs

我们已经得到了 R(N) 的表示法,现在只需要验证

D1D3={(e1+1)(e2+1)(er+1),  fi 0,  fi 

证明:对 s 采用归纳法。

s=0 时,N=2t×p1e1prer。因此 N 的所有素因子都是 d1(mod4) 的。于是 D3=0D1N 的奇因子个数。
N 的奇因子是每个指数 ui 满足 0uiei 的数 p1u1prur。由计数,共有 (e1+1)(e2+1)(er+1) 种可能。
这证明了 s=0 时定理成立。

现在假设 q43,且 qN。同时假设上述定理对所有 <N 的整数都成立。假设 Nq 的指数为 f,这给出了 N=qfn,f1,qn。分别讨论 f 的奇偶性。

首先考虑 2f。则 N 的奇因子形如 qid  s.t.  0if,dn。且对于 N 的每组 (f+1) 个因子,它们都被平均地分在了 D1D3 中。因此 D1=D3
这表明了 D1D3=0

然后考虑 2f。同样假设 N 的奇因子形如 qid 其中 0if,dn。对于 N 的每组 (f+1) 个因子,当 i>0 时,2i2i 对应的两组因子被平均分在了 D1D3 中,这部分的答案被抵消了。当 i=0 时,问题转化为对于 n 证明原定理,而这已经由归纳假设得证。

因此我们验证了 D1D3 的形式。由 Lemma 2 可以得到 Theorem 3 的最终证明。


例题:R(n)
是求 R(n) 的板子题。

本文内容是笔者在翻《数论概论》时写的
权当随笔 如有笔误等问题敬请指正

因为这篇有点长写的时候太卡了所以写到一半的时候转了vscode
到最后发现似乎是预览页面占的内存太大了

但是这证明的 LATEX 实在是太难打了啊啊啊
而且证明过程好长啊啊啊

posted @   joke3579  阅读(723)  评论(4编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示